5 research outputs found

    Migrations to Microservices-Based Architectures - a Tale of Technical and Organizational Change

    Get PDF
    As software systems evolve and scale faster than the foundations on which they are structured on, software architecture migrations to modern, cutting edge paradigms of development are becoming common. An example of such a paradigm is Microservices-based Architectures (MSAs). With MSAs, organizations can manage the complexity of their software and deploy individual pieces autonomously and independently.\ua0However, migrating towards microservices entails a lot of complexity. The evolution of the structures that a migration predisposes is multifaceted, with a socio-technical nature.Therefore, this thesis aims to first of all understand the process in which decisions are made by engineers to migrate their software architecture towards microservices. In addition, this thesis targets to aggregate the migration journey of organizations that change their software architecture to microservices. Finally, it is demonstrated how an organization\u27s operations implement different processes for software architecture migrations and development methodologies

    An empirical study of the systemic and technical migration towards microservices

    Get PDF
    Context: As many organizations modernize their software architecture and transition to the cloud, migrations towards microservices become more popular. Even though such migrations help to achieve organizational agility and effectiveness in software development, they are also highly complex, long-running, and multi-faceted. Objective: In this study we aim to comprehensively map the journey towards microservices and describe in detail what such a migration entails. In particular, we aim to discuss not only the technical migration, but also the long-term journey of change, on a systemic level. Method: Our research method is an inductive, qualitative study on two data sources. Two main methodological steps take place – interviews and analysis of discussions from StackOverflow. The analysis of both, the 19 interviews and 215 StackOverflow discussions, is based on techniques found in grounded theory. Results: Our results depict the migration journey, as it materializes within the migrating organization, from structural changes to specific technical changes that take place in the work of engineers. We provide an overview of how microservices migrations take place as well as a deconstruction of high level modes of change to specific solution outcomes. Our theory contains 2 modes of change taking place in migration iterations, 14 activities and 53 solution outcomes of engineers. One of our findings is on the architectural change that is iterative and needs both a long and short term perspective, including both business and technical understanding. In addition, we found that a big proportion of the technical migration has to do with setting up supporting artifacts and changing the paradigm that software is developed

    Facing the Giant: a Grounded Theory Study of Decision-Making in Microservices Migrations

    Full text link
    Background: Microservices migrations are challenging and expensive projects with many decisions that need to be made in a multitude of dimensions. Existing research tends to focus on technical issues and decisions (e.g., how to split services). Equally important organizational or business issues and their relations with technical aspects often remain out of scope or on a high level of abstraction. Aims: In this study, we aim to holistically chart the decision-making that happens on all dimensions of a migration project towards microservices (including, but not limited to, the technical dimension). Method: We investigate 16 different migration cases in a grounded theory interview study, with 19 participants that recently migrated towards microservices. This study strongly focuses on the human aspects of a migration, through stakeholders and their decisions. Results: We identify 3 decision-making processes consisting of 22decision-points and their alternative options. The decision-points are related to creating stakeholder engagement and assessing feasibility, technical implementation, and organizational restructuring. Conclusions: Our study provides an initial theory of decision-making in migrations to microservices. It also outfits practitioners with a roadmap of which decisions they should be prepared to make and at which point in the migration.Comment: 11 pages, 7 figure

    The Migration Journey Towards Microservices

    No full text
    Organizations initiate migration projects in order to change their software architecture towards microservices and ripe the many benefits that microservices have to offer. However, migrations often take place in unstructured, non-systemic, and trial-and-error manners, resulting in unclarity and uncertainty in such projects. In this study, we investigate 16 software development organizations that migrated towards microservices and we chart their detailed migration journey. We do so by conducting an interview survey using some of the tools from Grounded Theory in 19 interviews from 16 organizations. Our results showcase the evolutionary and iterative nature of the migration journey at an architectural-level and system-implementation level. Also, we identify 18 detailed activities that take place in these levels, categorized in the four phases of 1) designing the architecture, 2) altering the system, 3) setting up supporting artifacts, and 4) implementing additional technical artifacts

    An Empirical Analysis of Microservices Systems Using Consumer-Driven Contract Testing

    No full text
    Testing has a prominent role in revealing faults in software based on microservices. One of the most important discussion points in MSAs is the granularity of services, often in different levels of abstraction. Similarly, the granularity of tests in MSAs is reflected in different test types. However, it is challenging to conceptualize how the overall testing architecture comes together when combining testing in different levels of abstraction for microservices. There is no empirical evidence on the overall testing architecture in such microservices implementations. Furthermore, there is a need to empirically understand how the current state of practice resonates with existing best practices on testing. In this study, we mine Github to find different candidate projects for an in-depth, qualitative assessment of their test artifacts. We analyze 16 repositories that use microservices and include various test artifacts. We focus on four projects that use consumer-driven-contract testing. Our results demonstrate how these projects cover different levels of testing. This study (i) drafts a testing architecture including activities and artifacts, and (ii) demonstrates how these align with best practices and guidelines. Our proposed architecture helps the categorization of system and test artifacts in empirical studies of microservices. Finally, we showcase a view of the boundaries between different levels of testing in systems using microservices
    corecore